/**
* Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved.
* Licensed under the terms of the Eclipse Public License (EPL).
* Please see the license.txt included with this distribution for details.
* Any modifications to this file must keep this entire header intact.
*/
/*
* Created on Jun 10, 2006
* @author Fabio
*/
package com.python.pydev.analysis.actions;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.ITextSelection;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
import org.python.pydev.core.docutils.PySelection;
import com.aptana.shared_core.utils.Reflection;
public class PyGlobalsBrowserWorkbench implements IWorkbenchWindowActionDelegate {
private ISelection selection;
public void dispose() {
}
public void init(IWorkbenchWindow window) {
}
public void run(IAction action) {
String text = null;
if (this.selection instanceof ITextSelection) {
ITextSelection textSelection = (ITextSelection) this.selection;
text = textSelection.getText();
if (text == null || text.length() == 0) {
//No selection... let's see if we can get a word there...
//(note: not using getDocument because only 3.5 has it)
Object document = Reflection.getAttrObj(textSelection, "fDocument");
//returns null if we couldn't get it.
if (document instanceof IDocument) { // document != null
PySelection ps = new PySelection((IDocument) document, textSelection);
try {
text = ps.getCurrToken().o1;
} catch (BadLocationException e) {
//ignore
}
}
}
}
PyGlobalsBrowser.getFromWorkspace(text);
}
public void selectionChanged(IAction action, ISelection selection) {
this.selection = selection;
}
}